home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / fweb / fweb-1.30 / install.fweb < prev    next >
Text File  |  1993-06-16  |  8KB  |  338 lines

  1. #! /bin/sh
  2.  
  3. # --- INSTALLATION SCRIPT for FWEB ---
  4. # (Try to use ./configure instead.)
  5.  
  6. # USAGE:  INSTALL.FWEB [d]
  7. #  (d means debugging option)
  8.  
  9. # THE FOLLOWING DEFINITIONS MUST BE IN ACCORD WITH THOSE IN setup.mk!
  10. # Default FWEB directory structure a la the TAR file:
  11. boot="boot"
  12. demos="demos"
  13. manual="manual"
  14. web="web"
  15.  
  16. # --- DON'T CHANGE ANYTHING BELOW HERE! ---
  17.  
  18. # For debugging, say ``ECHO=echo''; for production, say ``ECHO=''
  19. if [ ! "$1" ]
  20. then
  21.  ECHO=
  22. else
  23.  ECHO=echo
  24. fi
  25.  
  26. # Prompts:
  27. Iprompt=""
  28. Rprompt=">>>"
  29.  
  30. # Miscellaneous stuff
  31. FWEB_version="1.30"
  32. FWEB_date="June 15, 1993"
  33.  
  34. Feditor=""
  35. Fprompt=""
  36.  
  37. # Set up the PWD:
  38. if [ ! "$PWD" ]
  39. then
  40.  PWD=.
  41. fi
  42.  
  43. # Start-up messages to screen.
  44. clear
  45. echo "--- Welcome to the FWEB old-style installation procedure for Unix systems ---"
  46. echo "                        FWEB Version $FWEB_version ($FWEB_date)"
  47. echo ""
  48.  
  49. # Check for Makefile present.
  50. isMakefile=y
  51. for mfile in web/Makefile manual/Makefile
  52. do
  53.  if  test ! -f "$mfile"
  54.  then
  55.    echo "ERROR:  Missing $mfile!!!"
  56.    isMakefile=n
  57.  fi
  58. done
  59. if [ $isMakefile = n ]
  60. then
  61.  exit
  62. fi
  63.  
  64. # Preliminary warnings and instructions.
  65. bootsd=$boot/???
  66. echo "Questions, suggestions, and bug reports to krommes@princeton.edu."
  67. echo ""
  68. echo "[If you want to run this script in debugging mode (commands are merely"
  69. echo "displayed, not executed), type \`\`install.fweb d''.]"
  70. echo ""
  71. echo "IF YOU ARE A UNIX USER, YOU DON'T NEED TO USE THIS SCRIPT."
  72. echo "Rather, type"
  73. echo ""
  74. echo "      ./configure"
  75. echo "      cd web"
  76. echo "      make bootstrap"
  77. echo " [ Log on as root ]"
  78. echo "      make install"
  79. echo ""
  80. echo "(This is equivalent to bootstrap option 0 below.)"
  81. echo "For further discussion, see READ_ME.FWEB."
  82. echo ""
  83. echo "You must worry about several things:"
  84. echo ""
  85. echo " (1)  WARNING:  This script isn't fully error-trapped yet for"
  86. echo "      things like missing files!"
  87. echo ""
  88. echo " (2)  This script will ask you to select a boot subdirectory."
  89. echo "      If you are not using the automatic configuration option 0,"
  90. echo "      it will then copy $bootsd/defaults.mk to web/defaults.mk."
  91. echo "      You may need to change some things in web/defaults.mk such as"
  92. echo "      compiler options to make things work with your system."
  93. echo ""
  94. echo "      For example, users of Cray's scc compiler need to change the"
  95. echo "      default name of cc to scc, and must remove the -o option from the"
  96. echo "      compiler command line."
  97. echo ""
  98. echo "      Also, if your compiler has a switch to force the |char| type to be"
  99. echo "      |unsigned|, you should use that.  For example, FWEB will compile"
  100. echo "      on the DECstation with the ansi bootstrap provided one uses the"
  101. echo "      -unsigned option."
  102. echo ""
  103. echo " (3)  This script will also create $web/custom.h, either by running"
  104. echo "      configure or by copying $bootsd/custom.h to $web/custom.h."
  105. echo "      If the bootstrap doesn't work, you may need to change some things"
  106. echo "      in $web/custom.h.  If you do, please let me know."
  107. echo ""
  108. echo " (4)  The last actions of this script attempt to copy files to system"
  109. echo "      areas.  You must be root to that to succeed."
  110. echo ""
  111. echo "$Rprompt PLEASE TYPE ONE OF THE FOLLOWING:"
  112. echo ""
  113. echo "  y --- PROCEED"
  114. echo "  a --- ABORT"
  115. echo "  i --- SKIP to installation section."
  116. skip_to_install=n
  117. Fprompt=""
  118. while [ ! "$Fprompt" ]
  119. read Fprompt
  120. do
  121.  case "$Fprompt" in
  122.   [yY]) break;;
  123.   [aAnN]) echo "Aborting!"
  124.     exit;;
  125.   [iI]) skip_to_install=y
  126.     break;;
  127.      *) echo "$Rprompt PLEASE TYPE y, a, or i:"
  128.     Fprompt=""
  129.     ;;
  130.  esac
  131. done
  132.  
  133. if [ $skip_to_install = n ]
  134. then
  135.  
  136. # Select the boot subdirectory.
  137. select_boot=y
  138. while [ $select_boot = y ]
  139. do
  140.  echo "The available BOOT SUBDIRECTORIES are"
  141.  echo ""
  142.  echo " (0) AUTOMATIC UNIX CONFIGURATION"
  143.  echo ""
  144.  echo " (1) $boot/misc/           (miscellaneous unsupported machines)"
  145.  echo ""
  146.  echo "     $boot/ibm/"
  147.  echo " (2)            mvs/      (IBM/MVS)"
  148.  echo " (3)            pc/       (IBM-PC)"
  149.  echo ""
  150.  echo "     $boot/unix/"
  151.  echo " (4)            ansi/     (The PREFERRED, ANSI-C, bootstrap.**)"
  152.  echo " (5)            apollo/   (Nothing's guaranteed here!)"
  153.  echo " (6)            dsu/      (DECstation/ULTRIX)"
  154.  echo " (7)            sgi/      (Silicon Graphics IRIS)"
  155.  echo ""
  156.  echo "                sun/"
  157.  echo " (8)                cc/   (Sun's standard C compiler; DO NOT USE)"
  158.  echo " (9)                gcc/  (GNU's cc; PREFERRED)"
  159.  echo ""
  160.  echo "(10) $boot/vax             (VAX/VMS)"
  161.  echo ""
  162.  echo "** Always use the ANSI bootstrap and GNU's gcc compiler if possible!"
  163.  echo "   For v1.30, many of the other bootstraps have not been tested,"
  164.  echo "   since ANSI compilers are becoming much more widespread."
  165.  echo ""
  166.  copy_boot=y
  167.  echo "$Rprompt PLEASE TYPE THE NUMBER OF YOUR BOOT SUBDIRECTORY (a to abort);"
  168.  read nboot
  169.  auto_conf=n
  170.  while true
  171.  do
  172.   case "$nboot" in
  173.    [aAnN]) echo "Aborting!"
  174.      exit;;
  175.    0) auto_conf=y
  176.     break;;
  177.    1) bootsd=$boot/misc
  178.     break;;
  179.    2) bootsd=$boot/ibm/mvs
  180.     break;;
  181.    3) bootsd=$boot/ibm/pc
  182.     break;;
  183.    4) bootsd=$boot/unix/ansi
  184.     break;;
  185.    5) bootsd=$boot/unix/apollo
  186.     break;;
  187.    6) bootsd=$boot/unix/dsu
  188.     break;;
  189.    7) bootsd=$boot/unix/sgi
  190.     break;;
  191.    8) bootsd=$boot/unix/sun/cc
  192.     break;;
  193.    9) bootsd=$boot/unix/sun/gcc
  194.     break;;
  195.   10) bootsd=$boot/vax
  196.     break;;
  197.      *) echo "$Rprompt THAT NUMBER IS INVALID!  PLEASE TRY AGAIN:"
  198.     read nboot;;
  199.   esac
  200.  done
  201.  
  202.  echo ""
  203.  echo "The following will happen:"
  204.  echo ""
  205. if [ $auto_conf = y ]
  206. then
  207.  echo "  ./configure"
  208. else
  209.  echo "  cp $bootsd/custom.h $web"
  210.  echo "  cp $bootsd/defaults.mk $web"
  211. fi
  212.  echo ""
  213.  echo "$Rprompt PLEASE TYPE ONE OF THE FOLLOWING:"
  214.  echo ""
  215.  echo "  y --- PROCEED with the configuration."
  216.  echo "  n --- SELECT another boot subdirectory."
  217.  echo "  0 --- SKIP the configuration commands and PROCEED."
  218.  echo "  a --- ABORT!"
  219.  Fprompt=""
  220.  while [ ! Fprompt ]
  221.  read Fprompt
  222.  do
  223.   case "$Fprompt" in
  224.    [yY]) copy_boot=y
  225.      select_boot=n
  226.     break;;
  227.    [0]) copy_boot=n
  228.     select_boot=n
  229.     break;;
  230.    [aA]) echo "Aborting!"
  231.     exit;;
  232.    [nN]) break;;
  233.      *)  echo "$Rprompt PLEASE TYPE y OR n:"
  234.      Fprompt=""
  235.     ;;
  236.   esac
  237.  done
  238. done # End of boot subdirectory selection.
  239.  
  240. # Copy files from boot subdirectory to final resting places.
  241. if [ $copy_boot = y ]
  242. then
  243.  echo ""
  244.  if [ $auto_conf = y ]
  245.  then
  246.   $ECHO ./configure
  247.  else 
  248.  $ECHO cp $bootsd/custom.h $web
  249.  $ECHO cp $bootsd/defaults.mk $web
  250.  fi
  251. else
  252.  echo ""
  253.  echo "Skipped configuration commands."
  254. fi
  255. echo ""
  256.  
  257. # Do the make.
  258. echo "Now ready to run make.  Here's what will happen:"
  259. echo ""
  260. ($ECHO cd web; $ECHO make -n bootstrap)
  261. echo ""
  262. echo "$Rprompt DO THE MAKE FOR REAL?  [y/n]"
  263. Fprompt=""
  264. while [ ! Fprompt ]
  265. read Fprompt
  266. do
  267.  case "$Fprompt" in
  268.   [yY]) ($ECHO cd web; $ECHO make bootstrap)
  269.     break;;
  270.   [nN]) break;;
  271.   [aA]) echo "Aborting!"
  272.     exit;;
  273.      *) echo "$Rprompt PLEASE TYPE y OR n:"
  274.     Fprompt=""
  275.     ;;
  276.  esac
  277. done
  278.  
  279. fi
  280.  
  281. echo ""
  282. echo "Now ready to copy to system areas.  YOU MUST BE ROOT TO PROCEED!"
  283. echo "The following will happen:"
  284. echo ""
  285. ($ECHO cd web; $ECHO make -n install)
  286. echo ""
  287. echo "$Rprompt PLEASE TYPE ONE OF THE FOLLOWING:"
  288. echo ""
  289. echo "  y --- PROCEED with the copies."
  290. echo "  n --- Skip the copies and proceed to final advice."
  291. echo "  a --- ABORT!"
  292. Fprompt=""
  293. while [ ! Fprompt ]
  294. read Fprompt
  295. do
  296.  case "$Fprompt" in
  297.   [yY]) copy_system=y
  298.     break;;
  299.   [nN]) copy_system=n
  300.     break;;
  301.   [aA]) echo "Aborting!"
  302.     exit;;
  303.  esac
  304. done
  305.  
  306. echo ""
  307. if [ $copy_system = y ]
  308. then
  309.  echo ""
  310.  ($ECHO cd web; $ECHO make install)
  311. else
  312.  echo ""
  313.  echo "Skipped final copies to system areas."
  314. fi
  315.  
  316. # Some final advice.
  317. echo ""
  318. echo ""
  319. echo "SOME FINAL ADVICE:"
  320. echo ""
  321. echo "* The user manual now has its own make file, manual/Makefile."
  322. echo ""
  323. echo "* To obtain a short reference guide, type"
  324. echo ""
  325. echo "         cd manual"
  326. echo "         make guide"
  327. echo ""
  328. echo "* To obtain the complete (LONG!) user manual, type"
  329. echo ""
  330. echo "         cd manual"
  331. echo "         make manual"
  332. echo ""
  333. echo "* For brief information about some important entry points to the Makefiles,"
  334. echo "  type \`\`make help''.  For more information, see the discussion in the"
  335. echo "  beginning of Makefile."
  336. echo ""
  337. echo ""
  338. echo "Please send questions, suggestions, and bug reports to krommes@princeton.edu."